@@ -1,9 +1,13 @@ |
||
1 | 1 |
class DiagramsController < ApplicationController |
2 | 2 |
def show |
3 |
- @agents = if params[:scenario_id].present? |
|
4 |
- current_user.scenarios.find(params[:scenario_id]).agents.includes(:receivers) |
|
5 |
- else |
|
6 |
- current_user.agents.includes(:receivers) |
|
7 |
- end |
|
3 |
+ if params[:scenario_id].present? |
|
4 |
+ @scenario = current_user.scenarios.find(params[:scenario_id]) |
|
5 |
+ agents = @scenario.agents |
|
6 |
+ else |
|
7 |
+ agents = current_user.agents |
|
8 |
+ end |
|
9 |
+ @disabled_agents = agents.inactive |
|
10 |
+ agents = agents.active if params[:exclude_disabled].present? |
|
11 |
+ @agents = agents.includes(:receivers) |
|
8 | 12 |
end |
9 | 13 |
end |
@@ -60,7 +60,8 @@ class Agent < ActiveRecord::Base |
||
60 | 60 |
has_many :scenario_memberships, :dependent => :destroy, :inverse_of => :agent |
61 | 61 |
has_many :scenarios, :through => :scenario_memberships, :inverse_of => :agents |
62 | 62 |
|
63 |
- scope :active, -> { where(disabled: false) } |
|
63 |
+ scope :active, -> { where(disabled: false) } |
|
64 |
+ scope :inactive, -> { where(disabled: true) } |
|
64 | 65 |
|
65 | 66 |
scope :of_type, lambda { |type| |
66 | 67 |
type = case type |
@@ -9,7 +9,14 @@ |
||
9 | 9 |
<h2>Agent Event Flow</h2> |
10 | 10 |
</div> |
11 | 11 |
<div class="btn-group"> |
12 |
- <%= link_to icon_tag('glyphicon-chevron-left') + ' Back'.html_safe, (params[:scenario_id] ? scenario_path(params[:scenario_id]) : agents_path), class: "btn btn-default" %> |
|
12 |
+ <%= link_to icon_tag('glyphicon-chevron-left') + ' Back'.html_safe, (@scenario ? scenario_path(@scenario) : agents_path), class: "btn btn-default" %> |
|
13 |
+ <% if (num_disabled = @disabled_agents.count).nonzero? -%> |
|
14 |
+ <% if params[:exclude_disabled] %> |
|
15 |
+ <%= link_to @scenario ? scenario_diagram_path(@scenario) : diagram_path, class: 'btn btn-default' do %><%= icon_tag('glyphicon-eye-open') %> Show <%= pluralize(num_disabled, 'disabled Agent') %><% end %> |
|
16 |
+ <% else %> |
|
17 |
+ <%= link_to @scenario ? scenario_diagram_path(@scenario, exclude_disabled: true) : diagram_path(exclude_disabled: true), class: 'btn btn-default' do %><%= icon_tag('glyphicon-eye-close') %> Hide <%= pluralize(num_disabled, 'disabled Agent') %><% end %> |
|
18 |
+ <% end %> |
|
19 |
+ <% end %> |
|
13 | 20 |
</div> |
14 | 21 |
|
15 | 22 |
<div class='digraph'> |